local GGEF = require('GGE.函数')
local 活跃任务名称={"师门任务*20*2","官职任务*20*3*李将军","种族任务*20*2","钟馗捉鬼*50*2*钟馗","挖宝放妖*5*10","鬼王出世*20*4*黑无常","运镖任务*50*2*郑镖头","房都尉答题*1*20*房都尉","平定安邦*1*10*皇宫护卫","初出江湖*20*3*杜少海","摇钱树*1*20","五行修业*1*50*袁守诚","雁塔地宫*1*20*镇塔之神",
"三界悬赏*1*30","封妖任务*10*5","师门守卫*10*5","皇宫飞贼*1*30*御林军左统领","门派闯关*1*30*门派闯关使者","科举大赛*1*30","天降辰星*1*30*游奕灵官","降妖伏魔*30*1*鬼谷道士","镖王大赛*1*30*郑镖头","世界BOOS挑战*1*50","帮派竞赛*1*30*帮派竞赛主持人","首席争霸*1*30","英雄大会*1*30*比武大会主持人",
"二十八星宿*1*10","地煞星*1*20","天罡星*1*20","突厥首领*1*20","乌鸡国*1*50*吴举人","水陆大会*1*50*疥癞和尚","宝图任务*10*2*店小二","VIP月卡*1*50","车迟斗法*1*50*慧觉和尚","大闹天宫*1*50*太白金星","通天河*1*50*蝴蝶女","黑风山*1*50*小二","秘境降妖*1*50*御林军左统领","游泳比赛*1*30*报名官"}
local 活动类型 = {
	日常任务={"师门任务","官职任务","种族任务","钟馗捉鬼","挖宝放妖","鬼王出世","运镖任务","房都尉答题","平定安邦","初出江湖","摇钱树","五行修业","雁塔地宫","三界悬赏","封妖任务","宝图任务","召唤兽修炼","VIP月卡","法宝任务","生死劫"},
	限时活动={"师门守卫","皇宫飞贼","门派闯关","科举大赛","天降辰星","降妖伏魔","镖王大赛","世界BOOS挑战","帮派竞赛","首席争霸","英雄大会","游泳比赛","二十八星宿","地煞星","天罡星","万年知了王","突厥首领","突厥先锋"},
	进阶大神={"迎贺中秋"},
	副本任务={"乌鸡国","水陆大会","车迟斗法","大闹天宫","通天河","黑风山","秘境降妖"},
}

local 活跃分割={}
local 活动指引 = 多开数据[多开数据.当前].__UI界面.窗口层:创建我的窗口("活动指引",0,0,665,525)
local 当前 = 多开数据.当前
function 活动指引:初始化()
end

function 活动指引:打开(数据)
    for i=1,#活跃任务名称 do
		活跃分割[#活跃分割+1] = 分割文本(活跃任务名称[i],"*")
	end
    	self.数据=数据
	self.签到奖励 = 数据.签到奖励
	self:置窗口()
    	self.累计签到:置选中(true)
    	self.累签系统:重置()
	self:置可见(true)
    	self.限时活动:置选中(false)
    	self.日常任务:置选中(false)
   	self.副本任务:置选中(false)
	self.活动控件:置可见(false)
	self.提示控件:置可见(false)
	  -- self.数据.每日.活跃度.当前=20
	if self.数据.每日.活跃度.当前 >=60 then
		self.葫芦1:置可见(true)
		self.葫芦2:置可见(true)
		self.葫芦3:置可见(true)
		self.葫芦4:置可见(true)
	elseif self.数据.每日.活跃度.当前 >=40 then
		self.葫芦1:置可见(true)
		self.葫芦2:置可见(true)
		self.葫芦3:置可见(true)
		self.葫芦4:置可见(false)
	elseif self.数据.每日.活跃度.当前 >=25 then
		self.葫芦1:置可见(true)
		self.葫芦2:置可见(true)
		self.葫芦3:置可见(false)
		self.葫芦4:置可见(false)
	elseif self.数据.每日.活跃度.当前 >=10 then
		self.葫芦1:置可见(true)
		self.葫芦2:置可见(false)
		self.葫芦3:置可见(false)
		self.葫芦4:置可见(false)
	else
		self.葫芦1:置可见(false)
		self.葫芦2:置可见(false)
		self.葫芦3:置可见(false)
		self.葫芦4:置可见(false)
	end
    活动指引:属性重置()
end
function 活动指引:属性重置()
 活动指引.经验条:置位置(math.floor(self.数据.每日.活跃度.当前 / 60 * 100))
end

function 活动指引:置窗口()
	__置窗口坐标(self)
    local nsf = require('SDL.图像')(665,525)
    if nsf:渲染开始() then
        置窗口背景("活动指引",0,12,659,493,true):显示(0,0)
        取白色背景(0,0,610,305,true):显示(25,100)
		__res:取图像(__res:取地址("shape/ui/xz/", 0x00000005)):显示(90,425)
		__res:取图像(__res:取地址("shape/ui/xz/", 0x00000005)):显示(172,425)
		字体14:置颜色(__取颜色("白色"))
        		字体14:取图像(10):显示(130, 465)
		字体14:取图像(25):显示(210, 465)
		字体14:取图像(40):显示(290, 465)
		字体14:取图像(60):显示(370, 465)
		-- 字体14:取图像("累积活跃："..self.数据.每日.活跃度.当前):显示(340, 455)
		__res:取图像(__res:取地址("shape/ui/xz/", 0x00000004)):显示(475,425)
		字体14:取图像(os.date("%d", os.time()).."日"):显示(510, 435)
		字体14:取图像("活动日历"):显示(480, 465)
		字体14:取图像("排 行"):显示(560, 465)
		字体14:取图像("兑 换"):显示(610, 465)
		字体14:取图像("充值排行"):显示(400, 465)


        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

for i, v in ipairs {
    {name = '累计签到', x = 40 ,y = 48 , tcp =__res:getPNGCC(1,401,65,175,43,true):置拉伸(140,43), tcp2 = __res:getPNGCC(1,401+562,65+431,175,43,true):置拉伸(140,43) , font = '累计签到'},
    {name = '日常任务', x = 188 ,y = 48 , tcp =__res:getPNGCC(1,401,65,175,43,true):置拉伸(140,43), tcp2 = __res:getPNGCC(1,401+562,65+431,175,43,true):置拉伸(140,43) , font = '日常任务'},
    {name = '限时活动', x = 336 ,y = 48 , tcp =__res:getPNGCC(1,401,65,175,43,true):置拉伸(140,43), tcp2 = __res:getPNGCC(1,401+562,65+431,175,43,true):置拉伸(140,43) , font = '限时活动'},
    {name = '副本任务', x = 484 ,y = 48 , tcp =__res:getPNGCC(1,401,65,175,43,true):置拉伸(140,43), tcp2 = __res:getPNGCC(1,401+562,65+431,175,43,true):置拉伸(140,43) , font = '副本任务'},
} do
    local  临时函数 = 活动指引:创建我的单选按钮(v.tcp,v.tcp2,v.name,v.x,v.y,v.font)
    function 临时函数:左键弹起(x, y)
		if v.name == "日常任务" then
			活动指引.累计签到:置选中(false)
			活动指引.限时活动:置选中(false)
			活动指引.副本任务:置选中(false)
    		活动指引.累签系统:置可见(false)
			活动指引.日常任务:置选中(true)
			活动指引.活动控件:重置(v.name)
		elseif v.name == "限时活动" then
			活动指引.累计签到:置选中(false)
			活动指引.日常任务:置选中(false)
			活动指引.副本任务:置选中(false)
    		活动指引.累签系统:置可见(false)
			活动指引.限时活动:置选中(true)
			活动指引.活动控件:重置(v.name)
		elseif v.name == "副本任务" then
			活动指引.累计签到:置选中(false)
			活动指引.限时活动:置选中(false)
			活动指引.日常任务:置选中(false)
    		活动指引.累签系统:置可见(false)
			活动指引.副本任务:置选中(true)
			活动指引.活动控件:重置(v.name)
		elseif v.name == "累计签到" then
			活动指引.副本任务:置选中(false)
			活动指引.限时活动:置选中(false)
			活动指引.日常任务:置选中(false)
			活动指引.累计签到:置选中(true)
    		活动指引.累签系统:置可见(true)
			活动指引.活动控件:置可见(false)
		end
		活动指引.提示控件:置可见(false)
    end
end

function 活动指引:取活跃数据(名称)
	for i=1,#活跃分割 do
		if 活跃分割[i][1] == 名称 then
			活跃分割[i][5]=i
			return 活跃分割[i]
		end
	end
	return {}
end


local 活动控件 = 活动指引:创建控件('活动控件',27,110,676, 290)
function 活动控件:重置(name)
	self:置可见(true)
	local 活动类型 = {}
	for i,v in pairs(活动指引.数据.指引[name]) do
		活动类型[#活动类型+1] = v
	end


	self.活动网格:置物品(活动类型)
end

local 活动网格 = 活动控件:创建网格("活动网格",1,3,670,285)
function 活动网格:初始化()
end

function 活动网格:左键弹起(x, y, a, b, msg)
	发送数据(当前 or self and self.当前, 40, { 获取 = "查看攻略", 文本 = 活动指引.数据.标题, 文件 = self.子控件[a].指引名称 })
	self.鼠标x = x
	self.鼠标y = y
end

function 活动网格:显示介绍(数据)
	多开数据[当前].__UI弹出.指引弹出:置可见(true, true)
	多开数据[当前].__UI弹出.指引弹出.技能文本:清空()
	多开数据[当前].__UI弹出.指引弹出:打开(数据.文本, self.鼠标x + 60, self.鼠标y - 125, 340, 200)
end

local 提示控件 = 活动指引:创建控件('提示控件',27,110,676, 290)
local 提示文本 = 提示控件:创建文本("提示文本",10,10,230,230)
function 提示控件:重置(name)
	local nsf = require('SDL.图像')(230,230)
	local h =230
	local w =230
	if nsf:渲染开始() then
		__res:getPNGCC(3,213,927,30,30):显示(0,0)
		__res:getPNGCC(3,213,927+30,30,141):平铺(30,h-60):显示(0,30)
		__res:getPNGCC(3,213,927+171,30,31):显示(0,h-30)
		__res:getPNGCC(3,213+30,927,140,30):平铺(w-60,30):显示(30,0)
		__res:getPNGCC(3,213+30,927+30,155,141):平铺(w-60,h-60):显示(30,30)
		__res:getPNGCC(3,213+30,927+171,155,31):平铺(w-60,30):显示(30,h-30)
		__res:getPNGCC(3,228+170,927,30,30):显示(w-30,0)
		__res:getPNGCC(3,228+170,927+30,30,141):平铺(30,h-60):显示(w-30,30)
		__res:getPNGCC(3,228+170,927+171,30,31):显示(w-30,h-30)

		nsf:渲染结束()

	end
	self:置精灵(nsf:到精灵())
	self.提示文本:清空()
	__每日提示(self.提示文本, name)
end
function 提示控件:左键弹起(x, y)
	self:置可见(false)
end
local 经验条 = 活动指引:创建进度("经验条", 95, 440, 300, 8)
function 经验条:初始化()
 --   self:置精灵(__res:getPNGCC(1, 401, 181, 300, 8):到精灵())
    --self:置精灵(__res:getPNGCC(1, 401, 181, 300, 8):到精灵())
    self:置精灵(__res:getPNGCC(1, 587, 108, 183, 16):到精灵())
end



function 活动网格:置物品(活动类型)
	self:创建格子(300, 65, 8, 2, math.ceil(#活动类型 / 2), 2, true)
    for i = 1,#self.子控件 do
        if 活动类型[i] then
			local nsf = require('SDL.图像')(300,65)
			if nsf:渲染开始() then
				字体16:置颜色(__取颜色("黑色"))
				字体18:置颜色(__取颜色("绿色"))
				__res:取图像(__res:取地址('shape/dj/',活动类型[i].地址)):显示(10,3)
				字体18:取图像(活动类型[i].名称 .." ("..(活动类型[i].星级 or "1").."星)" ):显示(70,3)
				字体16:取图像("可完成："..(活动类型[i].最大次数 or "无限制").."次"):显示(70,25)
				字体16:取图像("可获得"..(活动类型[i].活跃 or "无").."活跃"):显示(70,45)

				nsf:渲染结束()
			end
			self.子控件[i]:置精灵(nsf:到精灵())
            local 按钮 = self.子控件[i]:创建我的按钮(__res:getPNGCC(1,626,28,58,34,true):置拉伸(58,30),'按钮'..i,230,30,"参加")
            function 按钮:左键弹起(x,y,msg)
				   if 活动类型[i] and 活动类型[i].名称 then
					发送数据(当前 or self and self.当前,178,{类型=活动类型[i].名称})
					end
				活动指引.提示控件:置可见(true)
				活动指引.提示控件:重置(活动类型[i].名称)
            end
            按钮:置可见(true,true)
        else
            self.子控件[i]:置精灵(nil)
        end
    end
end


for i, v in ipairs {
	{name = '葫芦1', x = 128 ,y = 48+380 , tcp =__res:取图像(__res:取地址("shape/ui/xz/", 0xAAB00009))},
	{name = '葫芦2', x = 211 ,y = 48+380 , tcp =__res:取图像(__res:取地址("shape/ui/xz/", 0xAAB00009))},
	{name = '葫芦3', x = 292 ,y = 48+380 , tcp =__res:取图像(__res:取地址("shape/ui/xz/", 0xAAB00009))},
	{name = '葫芦4', x = 374 ,y = 48+380 , tcp =__res:取图像(__res:取地址("shape/ui/xz/", 0xAAB00009))},
} do
local  临时函数 = 活动指引:创建我的按钮(v.tcp,v.name,v.x,v.y)
function 临时函数:左键弹起(x, y)
	local a = 1
	if v.name == '葫芦2' then
		a = 2
	elseif v.name == '葫芦3' then
		a = 3
	elseif v.name == '葫芦4' then
		a = 4
	end
	发送数据(当前 or self and self.当前, 81, {类型 = a })
end
end

local 关闭 = 活动指引:创建我的按钮(__res:getPNGCC(1,401,0,46,46),"关闭",615,0)

function 关闭:左键弹起(x,y)
    活动指引:置可见(false)
end

local 签到 = 活动指引:创建我的按钮(__res:取图像(__res:取地址("shape/ui/xz/", 0x00000002)),"签到",15,415)

function 签到:左键弹起(x,y)
    发送数据(当前 or self and self.当前,58)
end

local 兑换 = 活动指引:创建我的按钮(__res:取图像(__res:取地址("shape/ui/xz/", 0x00000001)),"兑换",610,425)

function 兑换:左键弹起(x,y)

end

local 充值排行 = 活动指引:创建我的按钮(__res:取图像(__res:取地址("shape/ui/xz/", 0x00000003)),"充值排行",415,425)

function 充值排行:左键弹起(x,y)
	活动指引:置可见(false)
	发送数据(当前 or self and self.当前,108)
end
local 七日签到 = 活动指引:创建我的按钮(__res:getPNGCC(1,401,65,175,43,true):置拉伸(75,65),"七日签到",475,417,"七日签到")

function 七日签到:左键弹起(x,y)
	发送数据(当前 or self and self.当前,207)
end

local 排行 = 活动指引:创建我的按钮(__res:取图像(__res:取地址("shape/ui/xz/", 0x00000003)),"排行",560,425)

function 排行:左键弹起(x,y)
	活动指引:置可见(false)
	发送数据(当前 or self and self.当前,39)
end


local 累签系统 = 活动指引:创建控件("累签系统",0,110,665,285)
function 累签系统:重置()
	self:置可见(true)
	self.奖励物品 = {}
	for n=1,#活动指引.签到奖励 do
		self.奖励物品[n] = {}
		for i=1,10 do
			if 活动指引.签到奖励[n]["物品"..i] then
				self.奖励物品[n][#self.奖励物品[n]+1] = 活动指引.签到奖励[i]["物品"..i]
			end
		end
	end
	self.累签网格:置物品(self.奖励物品)
end

local 累签网格 = 累签系统:创建网格("累签网格",5,0,630,285)
function 累签网格:初始化()

end

function 累签网格:左键弹起(x, y, a, b, msg)
    if 累签系统.奖励选中 ~= 0 and self.子控件[累签系统.奖励选中]  then
        self.子控件[累签系统.奖励选中]._spr.确定 = nil
    end
    if self.子控件[a] and self.子控件[a]._spr and self.子控件[a]._spr.物品 then
        local w,h = self.子控件[a]:取宽高()
        累签系统.奖励选中 = a
        self.子控件[a]._spr:详情打开(170,86,w,h,"选择",a)
    end
end

function 累签网格:置物品(奖励)
    self:创建格子(630,65,0,0,#奖励,1,true,12)
    for i = 1,#self.子控件 do
        local nsf = require('SDL.图像')(630,60)
        if nsf:渲染开始() then
            字体16:置颜色(__取颜色("红色"))
            字体16:取图像("累签"):显示(45,10)
			local 要求 = 活动指引.签到奖励[i].领取条件
			字体16:取图像(要求.."天"):显示(45,30)
			__res:取图像(__res:取地址('shape/ui/cz/',0xA0000012)):显示(95,0)
            nsf:渲染结束()
        end
        self.子控件[i]:置精灵(nsf:到精灵())
        local 子网格 = self.子控件[i]:创建网格("子网格"..i,105,7,630,60)
        子网格:创建格子(55, 55, 10, 1, #奖励[i], 10)
        for x=1,#子网格.子控件 do
            if 奖励[i][x] then
                local lssj = __商店格子.创建(当前)
                lssj:置物品(奖励[i][x],"充值系统",true)
                子网格.子控件[x]:置精灵(lssj)
            else
                子网格.子控件[x]:置精灵(nil)
            end
        end
        子网格:置可见(true,true)
        function 子网格:左键弹起(x, y, a, b, msg)
            if 子网格.子控件[a] and 子网格.子控件[a]._spr and 子网格.子控件[a]._spr.物品 then
                local x,y = 子网格.子控件[a]:取坐标()
                local w,h = 子网格.子控件[a]:取宽高()
                子网格.子控件[a]._spr.确定 = true
                子网格.子控件[a]._spr:详情打开(170,86,w,h,"选择",a)
            end
        end

		local 子按钮 = self.子控件[i]:创建我的按钮(__res:getPNGCC(1,449,28,174,35,true):置拉伸(90,25),"奖励领取"..i,540,15,"领取奖励")
		function 子按钮:左键弹起(消息,x,y)
			发送数据(当前 or self and self.当前,19,{奖励类型=活动指引.签到奖励[i].礼包类型})
		end
		子按钮:置可见(true,true)
    end
end


